package com.pcafs.manage.service;

import com.pcafs.common.core.domain.AjaxResult;
import com.pcafs.manage.domain.PcafsField;
import com.pcafs.manage.vo.PcafsFieldVo;
import com.pcafs.manage.bo.PcafsFieldQueryBo;
import com.pcafs.manage.bo.PcafsFieldAddBo;
import com.pcafs.manage.bo.PcafsFieldEditBo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 字段信息Service接口
 *
 * @author pcafs
 * @date 2022-05-05
 */
public interface IPcafsFieldService extends IService<PcafsField> {
	/**
	 * 查询单个
	 * @return
	 */
	PcafsFieldVo queryById(Long id);

	/**
	 * 查询列表
	 */
	List<PcafsFieldVo> queryList(PcafsFieldQueryBo bo);

	/**
	 * 根据新增业务对象插入字段信息
	 * @param bo 字段信息新增业务对象
	 * @return
	 */
	Boolean insertByAddBo(PcafsFieldAddBo bo);

	/**
	 * 根据编辑业务对象修改字段信息
	 * @param bo 字段信息编辑业务对象
	 * @return
	 */
	Boolean updateByEditBo(PcafsFieldEditBo bo);

	/**
	 * 校验并删除数据
	 * @param ids 主键集合
	 * @param isValid 是否校验,true-删除前校验,false-不校验
	 * @return
	 */
	Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

	List<PcafsField> queryAll(PcafsFieldQueryBo bo);

	Integer haveData(String tabNameEn);

	Map<String, Object> getFieldAndData(String tabNameEn);

	List<Map> getTabData(String tabNameEn);

	List<PcafsField> getFieldList(String tabNameEn);

	Map importData(MultipartFile file) throws IOException;

	String importDataToTab(Map map);
}
